﻿#ifndef USERDATAFORMATE_H
#define USERDATAFORMATE_H

//此处存放与数据库有关的内容

#include <QWidget>
#include <QDateTime>
//#include "dataFormate.h"
#define PERCOUNT 8  //每页放8个处方

//用户信息
typedef struct PatientMsg
{
    QString userName;               //患者姓名 必填
    QString userPhone;              //患者电话//自增性ID，由系统分配控制
    int sex;                        //0-男性 1-女性
    int age;                        //年龄
    int weight;                     //患者体重
    int ID;                         //患者ID
    int height;                     //患者身高
    QString remarkMessage;          //备注信息

}ST_PatientMsg;

//训练报告
typedef struct TrainReport
{
    QString UUID;
    int ID;             //患者ID
    QString userName;   //姓名
    int sex;            //性别
    QString userPhone;  //电话
    int height;         //身高
    int age;            //年龄
    QString remark;     //备注
    int resistance;     //阻力
    int range;          //阈值
    int score;          //游戏得分
    int trainDifficulty; //训练难度0-2 低中高
    QString gameplay;   //游戏方式
    int direction;      //方向
    int game;           //游戏
    int trainTime;      //训练时长
    QDateTime reportDate;//开始时间
	QString reportDateStr;
    QString backGroundPixmapPath;//背景图路径
}ST_TrainReport;

//训练记录
typedef struct TrainRecord
{
    QString UUID;
    int ID;                     //患者ID
    QDateTime trainingDate;     //训练日期
    int trainingDuration;       //训练时长
    int resistance;             //阻力
    QString difficulty;         //难度
    int score;                  //得分
    QString gameplay;           //游戏方式
	QString trainingDateStr;
}ST_TrainRecord;

//评估记录
typedef struct EvaluateRecord
{
    QString UUID;
    int ID;                     //患者ID
    QDateTime evaluateDate;     //评估日期
    int evaluateDuration;       //评估时长
    int resistance;             //阻力
    QString maxAngle;           //最大角度（前后左右）
	QString evaluateDateStr;
}ST_EvaluateRecord;

//评估报告
typedef struct EvaluateReport
{
    QString UUID;
    int ID;
    QDateTime reportDate;   //报告日期
    QString name;           //姓名
    int sex;                //性别
    QString phoneNumber;    //电话
    int height;             //身高
    int age;                //年龄
    QString remark;         //备注
    int resistance;         //阻力
    int evaluateDuration;   //评估时长
    int frontMaxAngle;        //向前最大角度
    int backMaxAngle;         //向后最大角度
    int leftMaxAngle;         //向左最大角度
    int rightMaxAngle;        //向右最大角度
    QString backGroundPixmapPath;//背景图路径
    QString tempBackPixmapPath;  //临时路径
	QString reportDateStr;

}ST_EvaluateReport;

//接收到的数据
//评估数据
typedef struct EvaluateData
{
    uint16_t receviData;
    int16_t xAngle;
    int16_t yAngle;

}ST_EvaluateData;

extern ST_PatientMsg variantMapToPatientMsg(QVariantMap vMap);
extern ST_TrainRecord variantMapToTrainRecord(QVariantMap vMap);
extern ST_TrainReport variantMapToTrainReport(QVariantMap vMap);
extern ST_EvaluateRecord variantMapToEvaluateRecord(QVariantMap vMap);
extern ST_EvaluateReport variantMapToEvaluateReport(QVariantMap vMap);


extern QVariantMap patientMsgToVariantMap(ST_PatientMsg);
extern QVariantMap trainRecordToVariantMap(ST_TrainRecord);
extern QVariantMap trainReportToVariantMap(ST_TrainReport);
extern QVariantMap evaluateRecordToVariantMap(ST_EvaluateRecord);
extern QVariantMap evaluateReportToVariantMap(ST_EvaluateReport);


#endif // USERDATAFORMATE_H
